home *** CD-ROM | disk | FTP | other *** search
- //******************************************************************************
- // VARIAN LED STUDIO v2.00
- // (c) VARIAN SOFTWARE SERVICES NL 1996-1997
- // ALL RIGHTS RESERVED
- //******************************************************************************
- unit main;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- StdCtrls, vrlcd, ExtCtrls, MPlayer, Buttons, vrgrad, vrscan,
- vrleds, mmsystem, ToolWin, ComCtrls, vrmatrix, vrtrack, vrbltr, VrClass,
- vrgauge;
-
- type
- TMainForm = class(TForm)
- VrGradient: TVrGradient;
- DisplayPanel: TPanel;
- Timer: TTimer;
- MediaPlayer: TMediaPlayer;
- Panel1: TPanel;
- ButtonPlay: TButton;
- ButtonStop: TButton;
- ButtonPause: TButton;
- ButtonPrev: TButton;
- ButtonNext: TButton;
- ButtonEject: TButton;
- VrBlotter1: TVrBlotter;
- Label7: TLabel;
- VrCurTrack: TVrNum;
- Label1: TLabel;
- Label3: TLabel;
- VrClockCurTrackTime: TVrClock;
- VrClockTotalTrackTime: TVrClock;
- Label2: TLabel;
- Label4: TLabel;
- ModeLabel: TLabel;
- VrScanner1: TVrScanner;
- VrLed1: TVrLed;
- Label5: TLabel;
- VrNumTotalTracks: TVrNum;
- Label6: TLabel;
- VrClockDiskTime: TVrClock;
- Label8: TLabel;
- VrClock1: TVrClock;
- VrGauge1: TVrGauge;
- procedure ButtonPlayClick(Sender: TObject);
- procedure ButtonStopClick(Sender: TObject);
- procedure ButtonPauseClick(Sender: TObject);
- procedure ButtonPrevClick(Sender: TObject);
- procedure ButtonNextClick(Sender: TObject);
- procedure ButtonEjectClick(Sender: TObject);
- procedure FormCreate(Sender: TObject);
- procedure MediaPlayerNotify(Sender: TObject);
- procedure TimerTimer(Sender: TObject);
- procedure FormDestroy(Sender: TObject);
- private
- procedure CheckDisk;
- procedure CheckPosition;
- procedure ResetControls;
- public
- { Public declarations }
- end;
-
- var
- MainForm: TMainForm;
-
- implementation
-
- {$R *.DFM}
-
-
- procedure TMainForm.FormCreate(Sender: TObject);
- begin
- MediaPlayer.TimeFormat := tfTMSF;
- MediaPlayer.Wait := true;
- MediaPlayer.Notify := false;
- MediaPlayerNotify(self);
- end;
-
- procedure TMainForm.FormDestroy(Sender: TObject);
- begin
- MediaPlayer.Stop;
- MediaPlayer.Close;
- end;
-
- procedure TMainForm.TimerTimer(Sender: TObject);
- var
- Mode: TMPModes;
- begin
- Mode := MediaPlayer.Mode;
- if not (Mode in [mpStopped, mpPlaying]) then
- begin
- MediaPlayer.Open;
- MediaPlayerNotify(self);
- end;
- if Mode = mpPlaying then
- begin
- CheckPosition;
- VrLed1.Active := true;
- VrScanner1.Active := true;
- end
- else
- begin
- VrLed1.Active := false;
- VrScanner1.Active := false;
- end;
- end;
-
- procedure TMainForm.ResetControls;
- begin
- VrNumTotalTracks.Value := 0;
- VrClockDiskTime.Hours := 0;
- VrClockDiskTime.Minutes := 0;
- VrClockCurTrackTime.Hours := 0;
- VrClockCurTrackTime.Minutes := 0;
- VrCurTrack.Value := 0;
- VrClockTotalTrackTime.Hours := 0;
- VrClockTotalTrackTime.Minutes := 0;
- VrGauge1.Position := 0;
- end;
-
- procedure TMainForm.ButtonPlayClick(Sender: TObject);
- begin
- MediaPlayer.Play;
- MediaPlayerNotify(self);
- end;
-
- procedure TMainForm.ButtonStopClick(Sender: TObject);
- begin
- MediaPlayer.Stop;
- MediaPlayerNotify(self);
- end;
-
- procedure TMainForm.ButtonPauseClick(Sender: TObject);
- begin
- MediaPlayer.Pause;
- MediaPlayerNotify(self);
- end;
-
- procedure TMainForm.ButtonPrevClick(Sender: TObject);
- begin
- MediaPlayer.Previous;
- MediaPlayerNotify(self);
- end;
-
- procedure TMainForm.ButtonNextClick(Sender: TObject);
- begin
- MediaPlayer.Next;
- MediaPlayerNotify(self);
- end;
-
- procedure TMainForm.ButtonEjectClick(Sender: TObject);
- begin
- MediaPlayer.Eject;
- MediaPlayer.Close;
- MediaPlayerNotify(self);
- end;
-
- procedure TMainForm.MediaPlayerNotify(Sender: TObject);
- const
- ModeStr: array[TMPModes] of string[10] = ('NOT READY', 'STOPPED', 'PLAYING',
- 'RECORDING', 'SEEKING', 'PAUSED', 'OPEN');
- begin
- ModeLabel.Caption := '* ' + ModeStr[MediaPlayer.Mode];
- case MediaPlayer.Mode of
- mpNotReady:;
- mpStopped:
- begin
- CheckDisk;
- CheckPosition;
- ButtonPlay.Enabled := true;
- ButtonStop.Enabled := false;
- ButtonPause.Enabled := false;
- ButtonNext.Enabled := true;
- ButtonPrev.Enabled := true;
- ButtonEject.Enabled := true;
- end;
- mpPlaying:
- begin
- CheckDisk;
- ButtonPlay.Enabled := false;
- ButtonStop.Enabled := true;
- ButtonPause.Enabled := true;
- ButtonEject.Enabled := true;
- ButtonPrev.Enabled := true;
- ButtonNext.Enabled := true;
- end;
- mpSeeking:;
- mpPaused:;
- mpOpen:
- begin
- ButtonPlay.Enabled := false;
- ButtonStop.Enabled := false;
- ButtonPause.Enabled := false;
- ButtonPrev.Enabled := false;
- ButtonNext.Enabled := false;
- ButtonEject.Enabled := false;
- ResetControls;
- end;
- else ModeLabel.Caption := '* MODE';
- end;
- end;
-
- procedure TMainForm.CheckDisk;
- var
- NTracks, NLen: Integer;
- begin
- NTracks := MediaPlayer.Tracks;
- NLen := MediaPlayer.Length;
- VrNumTotalTracks.Value := NTracks;
- VrClockDiskTime.Hours := MCI_MSF_MINUTE(NLen);
- VrClockDiskTime.Minutes := MCI_MSF_SECOND(NLen);
- end;
-
- procedure TMainForm.CheckPosition;
- var
- CurrentTrack, CurrentPos, TrackLen: Integer;
- Mt, Pt, M, S: Integer;
- begin
- CurrentPos := MediaPlayer.Position;
- VrClockCurTrackTime.Hours := MCI_TMSF_MINUTE(CurrentPos);
- VrClockCurTrackTime.Minutes := MCI_TMSF_SECOND(CurrentPos);
-
- CurrentTrack := MCI_TMSF_TRACK (CurrentPos);
- VrCurTrack.Value := CurrentTrack;
-
- TrackLen := MediaPlayer.TrackLength [CurrentTrack];
- VrClockTotalTrackTime.Hours := MCI_MSF_MINUTE(TrackLen);
- VrClockTotalTrackTime.Minutes := MCI_MSF_SECOND(TrackLen);
-
- Application.ProcessMessages;
-
- M := MCI_MSF_MINUTE(TrackLen);
- S := MCI_MSF_SECOND(TrackLen);
- Mt := (M * 60) + S;
-
- M := MCI_TMSF_MINUTE(CurrentPos);
- S := MCI_TMSF_SECOND(CurrentPos);
- Pt := (M * 60) + S;
-
- VrGauge1.Max := Mt;
- VrGauge1.Position := Pt;
- end;
-
-
- end.
-